//----------------------------------Include------------------------------------
#include "my_type_rdf.h"
#include "my_cfg.h"
//-----------------------------------------------------------------------------

//--------------------------------Public Func----------------------------------
void MyMcu_Init_DO(void)
{ 
  GPIO_InitTypeDef    GPIO_InitS;
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  
//Output
  GPIO_StructInit(&GPIO_InitS);
  GPIO_InitS.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitS.GPIO_Mode  = GPIO_Mode_Out_PP;
  
  //PB15 -- LED0
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_15;  GPIO_Init(GPIOB, &GPIO_InitS);  PBout(15) = 1;
  
  //PB8 -- TxEN   PB9 -- RxEN
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_8;   GPIO_Init(GPIOB, &GPIO_InitS);  PBout(8)  = 1;  //High Enable
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_9;   GPIO_Init(GPIOB, &GPIO_InitS);  PBout(9)  = 0;  //Low  Enable
  
  //PA8-col0  PA11-col1  PA12-col2
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_8;   GPIO_Init(GPIOA, &GPIO_InitS);  PAout(8)   = 0;
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_11;  GPIO_Init(GPIOA, &GPIO_InitS);  PAout(11)  = 0;
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_12;  GPIO_Init(GPIOA, &GPIO_InitS);  PAout(12)  = 0;
  //PA1-row0  PA2 -row1  PA3 -row2
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_1;   GPIO_Init(GPIOA, &GPIO_InitS);  PAout(1)  = 0;
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_2;   GPIO_Init(GPIOA, &GPIO_InitS);  PAout(2)  = 0;
  GPIO_InitS.GPIO_Pin   = GPIO_Pin_3;   GPIO_Init(GPIOA, &GPIO_InitS);  PAout(3)  = 0;
  
//PB0 -- for test
  //GPIO_InitS.GPIO_Speed = GPIO_Speed_50MHz;
  //GPIO_InitS.GPIO_Mode  = GPIO_Mode_AIN;
  //GPIO_InitS.GPIO_Pin   = GPIO_Pin_0;
  //GPIO_Init(GPIOB, &GPIO_InitS);
}

//output
void MyMcu_LED_Toggle(void)
{
  (PBin(15)) ? (PBout(15) = 0) : (PBout(15) = 1);
}

u8 MyMcu_LED0(u8 on)
{
  if(on) PBout(15) = 0;
  else   PBout(15) = 1;
  return on;
}

void MyMcu_Set_Pos(uint32_t col, uint32_t row)
{
  if(col >= 6) return;
  if(row >= 6) return;
  
  switch(col){
    case 0:  PAout(12) = 0;  PAout(11) = 0;  PAout(8) = 0;   break;
    case 1:  PAout(12) = 0;  PAout(11) = 0;  PAout(8) = 1;   break;
    case 2:  PAout(12) = 0;  PAout(11) = 1;  PAout(8) = 0;   break;
    case 3:  PAout(12) = 0;  PAout(11) = 1;  PAout(8) = 1;   break;
    case 4:  PAout(12) = 1;  PAout(11) = 0;  PAout(8) = 0;   break;
    case 5:  PAout(12) = 1;  PAout(11) = 0;  PAout(8) = 1;   break;
    default: break;
  }
  
  switch(row){
    case 0:  PAout(3) = 0;  PAout(2) = 0;  PAout(1) = 0;   break;
    case 1:  PAout(3) = 0;  PAout(2) = 0;  PAout(1) = 1;   break;
    case 2:  PAout(3) = 0;  PAout(2) = 1;  PAout(1) = 0;   break;
    case 3:  PAout(3) = 0;  PAout(2) = 1;  PAout(1) = 1;   break;
    case 4:  PAout(3) = 1;  PAout(2) = 0;  PAout(1) = 0;   break;
    case 5:  PAout(3) = 1;  PAout(2) = 0;  PAout(1) = 1;   break;
    default: break;
  }
}
//-----------------------------------------------------------------------------

//------------------------------------EOF--------------------------------------



